Machine Learning (ML) is a field of computer, which explores the study, and construction of algorithms that make predictions on data—such algorithms making data-driven predictions or decisions, through building a model from sample inputs. ML algorithms are a collection of programs mainly based on solving classification problem, applying logistic regression, and are used to derive error/cost optimization model.
Software testing is the process by which it is validated and verified that the software works as expected based on the provided or required specifications. Software test automation is the process by which the need to repeatedly manually test certain functionalities of the software is eliminated, by deploying or using programs and script to do the same.
The manual software testing is a labor-intensive process that takes significant number of man-hours in bug triaging and bug filing which is costly and inefficient. Test automation's full potential is not utilized when the test results are looked and analyzed manually and hence, the performance edge given by automation gets neutralized due to manual intervention.
The process of finding errors (from the log files), triage and file, a bug takes at least 20-30 minutes to find out whether the bug has been previously filed or not. These steps are being followed by sending mails or tag developers for communicating bug discovery etc. In this process, the quality can take a hit at times, if there are too many bugs/exceptions. Current systems do not provide the visibility/ability to find out which test suite(s) is erroneous, so that immediate action can be taken. Creation of analysis-based dashboard from the current process is difficult, as it will have to be updated manually as the final decision of filing or not filing a bug is taken manually.
The U.S. patent application Ser. No. 14/929,961 (referred herein as '961) titled “System and method for optimizing testing of software production incidents” discloses a system and method for optimizing testing of software production incidents. The method comprises analyzing an incident ticket using a machine-learning algorithm to identify one or more keywords in the incident ticket, and identifying a location of the incident ticket based on one or more keywords. The system comprises a processor and a memory communicatively coupled to at least one processor. The memory stores processor-executable instructions, which, on execution, cause the processor to categorize an incident ticket received from one or more sources based on one or more pre-defined parameters. The incident ticket corresponds to an obstruction in a software production. However, the system does not disclose autonomous learning, predication, decision-making, feedback and dashboards based deep insights.
The U.S. patent application Ser. No. 11/863,387 (referred herein as '387) titled “Software testing using machine learning” discloses a system and method for analyzing a computer program includes performing a static analysis on a program to determine property correctness. A system and method for analyzing a computer program includes performing a static analysis on a program to determine property correctness. Test cases are generated and conducted to provide test output data. Hypotheses about aspects of execution of the program are produced to classify paths for test cases to determine whether the test cases have been encountered or otherwise. In accordance with the hypothesis, new test cases are generated to cause the program to exercise behavior, which is outside of the encountered test cases. However, the system does not disclose software defect, bug finding, triaging, filling and notification.
Hence, there exists a need for a system, which automates the software testing to perform bug finding, triaging, filling and notification in an efficient manner.